home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
Twin
/
EvalListener.m
< prev
next >
Wrap
Text File
|
1995-06-12
|
1KB
|
52 lines
#import <appkit/appkit.h>
#import "EvalListener.h"
#import <mach.h>
#import <sys/message.h>
#import <servers/netname.h>
extern port_t name_server_port;
extern id NXResponsibleDelegate();
@implementation EvalListener :Listener
{}
static NXRemoteMethod *remoteMethods = NULL;
#define REMOTEMETHODS 1
+ initialize
/* */
{
if (!remoteMethods) {
remoteMethods =
(NXRemoteMethod *) malloc((REMOTEMETHODS+1)*sizeof(NXRemoteMethod));
remoteMethods[0].key =
@selector(evalString:);
remoteMethods[0].types = "c";
remoteMethods[REMOTEMETHODS].key = NULL;
}
}
-(int)evalString : (char *) string
/* */
{
id _NXd;
if (_NXd = NXResponsibleDelegate(self,
@selector(evalString:)))
return [_NXd evalString : string];
return -1;
}
- (int) performRemoteMethod : (NXRemoteMethod *) method
paramList : (NXParamValue *) paramList {
/* */
switch (method - remoteMethods) {
case 0:
return [self evalString : paramList[0].bval.p];
default:
return [super performRemoteMethod : method paramList : paramList];
}
}
- (NXRemoteMethod *) remoteMethodFor: (SEL) aSel {
/* */
NXRemoteMethod *rm;
if (rm = NXRemoteMethodFromSel(aSel,remoteMethods))
return rm;
return [super remoteMethodFor : aSel];
}
@end